#include "system.h"

/**
 * @brief  微秒级延时
 * @param  xus 延时时长，范围：0~233015
 * @retval 无
 */
void Delay_us(uint32_t xus)
{
	SysTick->LOAD = 72 * xus;	// 设置定时器重装值
	SysTick->VAL = 0x00;		// 清空当前计数值
	SysTick->CTRL = 0x00000005; // 设置时钟源为HCLK，启动定时器
	while (!(SysTick->CTRL & 0x00010000))
		;						// 等待计数到0
	SysTick->CTRL = 0x00000004; // 关闭定时器
}

/**
 * @brief  毫秒级延时
 * @param  xms 延时时长，范围：0~4294967295
 * @retval 无
 */
void Delay_ms(uint32_t xms)
{
	while (xms--)
	{
		Delay_us(1000);
	}
}

/**
 * @brief  秒级延时
 * @param  xs 延时时长，范围：0~4294967295
 * @retval 无
 */
void Delay_s(uint32_t xs)
{
	while (xs--)
	{
		Delay_ms(1000);
	}
}
char *my_strstr(char *str, char *find, int str_size)
{
	uint32_t i, j, n, find_size = (int)strlen(find);
	//debugprintf("dad_str size:%d,sub_str size:%d\r\n",str_size,find_size);
	i = j = n = 0;
	while (str_size--)
	{
		if (str[i] == find[0])
		{
			n=1;
			for (j = 1; j <= find_size; j++)
			{
				if (n == find_size)
				{
					return &str[i];
				}
				if (str[i + j] == find[j])
				{
					n++;
				}
			}
		}
		i++;
	}
	return NULL;
}